package com.hrt.day03.controlabs

/**
 * 利用名调用实现一个while循环
 */
object MyWhile {
    def main(args: Array[String]): Unit = {
        var a = 0
        loop(a <= 100){
            println(a)
            a += 1
        }
    }
    /**
     * 控制抽象
     * 通过名调用传递参数,就可以直接调用传递进来的代码
     * condition 是传递的条件,condition如果不是名调用循环就成了死循环,就不会停止了
     * op        是传递进来的代码
     */
    def loop(condition: => Boolean)(op: => Unit): Unit = {
        if (condition) {
            op
            loop(condition)(op)
        }
    }
}
/**
利用刚才学的递归和名调用, 柯里化来实现一个类型while循环的功能
while(){
}
 */